﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Librerias;
using System.Data;
using System.Collections;

namespace eCampusWeb
{
    public partial class NoticiaDetalle : System.Web.UI.Page
    {
        #region variables
        String noticiaId;
        DataRow[] dt = null;
        ListView lvNoticias = null;
        ENNoticias not = new ENNoticias ();
        int quienEs;
        String usuario;
        DataTable asignaturas;
        DataView dv = null;
        ArrayList pgAnterior=null;
        #endregion

        #region Page_Load(object sender, EventArgs e)
        protected void Page_Load(object sender, EventArgs e)
        {



            if (Request.Form["__EVENTTARGET"] != null &&
                Request.Form["__EVENTTARGET"] == "BORRAR")
            {
                Borrar(Request.Form["__EVENTARGUMENT"]);
            }


            if (!IsPostBack)
            {
                try
                {

                    quienEs = Convert.ToInt32(Session["tipo"]);
                    usuario = Session["correo"].ToString();
                    noticiaId = Request.QueryString["notId"].ToString();
                    lbIdAyuda.Text = noticiaId;
                    if (noticiaId == null || noticiaId == "") // || Session["correo"].ToString() == "" || Session["correo"].ToString() == "-1")
                    {
                        Response.Redirect("~/401.aspx");
                    }
                    pnOcultaSiProcede.Visible = false;
                    pnNumComentariosOculta.Visible = false;
                    dv = not.dimeUnaNoticiaConPuntos(noticiaId);

                    if (dv.Count > 0)
                    {
                        lbTitulo.Text = dv[0]["notAsunto"].ToString();
                        Label1.Text = dv[0]["notReceptor"].ToString();
                        //Label1.Text = dv[0]["notAsunto"].ToString();
                        hyAutor.Text = "por " + dv[0]["usuNombre"].ToString() + " " + dv[0]["usuApellido1"].ToString() + " " + dv[0]["usuApellido2"].ToString();
                        hyAutor.NavigateUrl = "~/Muro.aspx?usuario=" + dv[0]["notEmisor"].ToString();
                        //hyAsignatura.Text = "en " + dv[0]["notReceptor"].ToString(); ;
                        //hyAsignatura.NavigateUrl = "~/AsignaturaMuro.aspx?codigo=" + dv[0]["notReceptor"].ToString() ;
                        Label2.Text = dv[0]["notMensaje"].ToString();
                        Label4.Text = dv[0]["notFechaCreacion"].ToString();
                        Label3.Text = dv[0]["total"].ToString() == "" ? "0" : dv[0]["total"].ToString();

                        if (Session["correo"].ToString() == dv[0]["notEmisor"].ToString() ||
                        Session["correo"].ToString() == dv[0]["notEmisor"].ToString())
                        {
                            imgBorrar.CommandArgument = dv[0]["notId"].ToString();
                        }
                        else
                        {
                            cuadroBorrar.Visible = false;
                        }
                        // usuario registrado
                        if (!usuario.Equals(""))
                        {
                            asignaturas = new ENAsignatura().ConsultaAsignaturasPorCorreoUsuYTipoDataTable(usuario, quienEs);
                            String s = dv[0]["notReceptor"].ToString().Trim();
                            if ((lista(asignaturas)).Contains("'" + s + "'"))
                            {
                                pnOcultaSiProcede.Visible = true;
                                pnNumComentariosOculta.Visible = true;


                                //Carga comentarios
                                DataTable coments = new Librerias.EN.ENComentario().GetComentarios("N" + noticiaId);
                                ListView1.DataSource = coments;
                                ListView1.DataBind();

                                Label5.Text = coments.Rows.Count.ToString() + " comentarios";

                            }
                        }
                    }

                    //lvNoticias.DataSource = dv;
                    //lvNoticias.DataBind();

                    lvNoticias.Visible = false;
                }
                catch (Exception ex)
                {
                }
            }
        }
        #endregion

        #region String lista(DataTable asigs)
        public String lista(DataTable asigs)
        {
            String sal = "";

            if (asigs.Rows.Count > 0) sal += "'" + asigs.Rows[0]["asiCodigo"].ToString() + "'";
            for (int i = 1; i < asigs.Rows.Count; i++)
            {
                sal += ",'" + asigs.Rows[i]["asiCodigo"].ToString().Trim() + "'";
            }
            return sal;
        }
        #endregion

        #region btVolver_clicky(object sender, EventArgs e)
        protected void btVolver_clicky(object sender, EventArgs e)
        {
            Response.Redirect(Request.QueryString["pgAnterior"]);
        }
        #endregion

        #region void Comentar(object sender, EventArgs e)
        protected void Comentar(object sender, EventArgs e)
        {
            //new Librerias.EN.ENComentario().AddComentario(Session["correo"].ToString(), "N" + noticiaId, TextBox1.Text);
            new Librerias.EN.ENComentario().AddComentario(Session["correo"].ToString(), "N" + lbIdAyuda.Text, TextBox1.Text);

            DataTable coments = new Librerias.EN.ENComentario().GetComentarios("N" + lbIdAyuda.Text);
            ListView1.DataSource = coments;
            ListView1.DataBind();

            Label5.Text = coments.Rows.Count.ToString() + " comentarios";
        }
        #endregion

        #region public void MasUnoMuro(object sender, EventArgs e)
        public void MasUnoMuro(object sender, EventArgs e)
        {
            try
            {
                new Librerias.EN.ENPuntos().MasUno("N" + noticiaId, Session["correo"].ToString());

                //Carga noticia 
                DataView dv = not.dimeUnaNoticiaConPuntos(noticiaId);

                if (dv.Count > 0)
                {
                    lbTitulo.Text = dv[0]["notAsunto"].ToString();
                    Label1.Text = dv[0]["notReceptor"].ToString();
                   // Label1.Text = dv[0]["notAsunto"].ToString();
                    hyAutor.Text = dv[0]["usuNombre"].ToString() + " " + dv[0]["usuApellido1"].ToString() + " " + dv[0]["usuApellido2"].ToString();
                    hyAutor.NavigateUrl = "~/Muro.aspx?usuario=" + dv[0]["notEmisor"].ToString();
                    //hyAsignatura.Text = dv[0]["notReceptor"].ToString(); ;
                    //hyAsignatura.NavigateUrl = "~/AsignaturaMuro.aspx?codigo=" + dv[0]["notReceptor"].ToString(); ;
                    Label2.Text = dv[0]["notMensaje"].ToString();
                    Label4.Text = dv[0]["notFechaCreacion"].ToString();
                    Label3.Text = dv[0]["total"].ToString() == "" ? "0" : dv[0]["total"].ToString();
                }
            }
            catch (Exception)
            {
                lbAviso.Text = "No puedes votar dos veces la misma noticia. ";
            }
        }
        #endregion

        #region void MenosUnoMuro(object sender, EventArgs e)
        public void MenosUnoMuro(object sender, EventArgs e)
        {
            try
            {
                new Librerias.EN.ENPuntos().MenosUno("N" + noticiaId, Session["correo"].ToString());

                //Carga noticia 
                DataView dv = not.dimeUnaNoticiaConPuntos(noticiaId);
                if (dv.Count > 0)
                {
                   lbTitulo.Text = dv[0]["notAsunto"].ToString();
                   Label1.Text = dv[0]["notReceptor"].ToString();
                    hyAutor.Text = dv[0]["usuNombre"].ToString() + " " + dv[0]["usuApellido1"].ToString() + " " + dv[0]["usuApellido2"].ToString();
                    hyAutor.NavigateUrl = "~/Muro.aspx?usuario=" + dv[0]["notEmisor"].ToString();
                   // hyAsignatura.Text = dv[0]["notReceptor"].ToString(); ;
                    //hyAsignatura.NavigateUrl = "~/AsignaturaMuro.aspx?codigo=" + dv[0]["notReceptor"].ToString(); ;
                    Label2.Text = dv[0]["notMensaje"].ToString();
                    Label4.Text = dv[0]["notFechaCreacion"].ToString();
                    Label3.Text = dv[0]["total"].ToString() == "" ? "0" : dv[0]["total"].ToString();
                }
            }
            catch (Exception)
            {
                lbAviso.Text = "No puedes votar dos veces la misma noticia. ";
            }
        }
        #endregion

        #region void MasUno(object sender, EventArgs e)
        public void MasUno(object sender, EventArgs e)
        {
            try
            {
                string Cid = ((ImageButton)sender).CommandArgument;
                new Librerias.EN.ENPuntos().MasUno("C" + Cid, Session["correo"].ToString());

                //Carga comentarios
                DataTable coments = new Librerias.EN.ENComentario().GetComentarios("N" + lbIdAyuda.Text);
                ListView1.DataSource = coments;
                ListView1.DataBind();

                Label5.Text = coments.Rows.Count.ToString() + " comentarios";
            }
            catch (Exception)
            {
                lbAviso.Text = "ERROR: No puedes votar dos veces el mismo comentario. ";
            }
        }
        #endregion

        #region MenosUno(object sender, EventArgs e)
        public void MenosUno(object sender, EventArgs e)
        {
            try
            {
                string Cid = ((ImageButton)sender).CommandArgument;

                new Librerias.EN.ENPuntos().MenosUno("C" + Cid, Session["correo"].ToString());

                //Carga comentarios
                DataTable coments = new Librerias.EN.ENComentario().GetComentarios("N" + lbIdAyuda.Text);
                ListView1.DataSource = coments;
                ListView1.DataBind();

                Label5.Text = coments.Rows.Count.ToString() + " comentarios";
            }
            catch (Exception)
            {
                lbAviso.Text = "ERROR: No puedes votar dos veces el mismo comentario. ";
            }
        }
        #endregion

        #region Button2_Click(object sender, EventArgs e)
        protected void Button2_Click(object sender, EventArgs e)
        {
            //if (Request.QueryString["asig"] == null)
            //{
            //    Response.Redirect("~/Muro.aspx?usuario=" + HttpUtility.HtmlEncode(HiddenField1.Value));
            //}
            //else
            //{
            //    Response.Redirect("~/AsignaturaMuro.aspx?codigo=" + Request.QueryString["asig"]);
            //}
        }
        #endregion

        #region void Borrar(string idB)
        public void Borrar(string idB)
        {
            new Librerias.EN.ENComentario().DeleteComentario(idB);

            string redir = "";

            //string asig = Request.QueryString["asig"];

            //if (asig != null)
            //{
            //    redir += "&asig=" + asig;
            //}

            redir = Request.Url.PathAndQuery.ToString();
            Response.Redirect(redir);
        }
        #endregion

        #region void imgBorrar_Click(object sender, ImageClickEventArgs e)
        protected void imgBorrar_Click(object sender, ImageClickEventArgs e)
        {

            new ENNoticias().borraNoticia(lbIdAyuda.Text);

            btVolver_clicky(null, null);
        }
        #endregion
    }
}